package com.huan.quartz.service;

import com.huan.quartz.domain.QuartzJobCfg;

import java.util.List;

/**
 * quartz job 配置 service
 *
 * @author huan.fu
 * @date 2018/9/10 - 15:00
 */
public interface QuartzJobCfgService {

	/**
	 * 添加一个 quartz job
	 *
	 * @param jobCfg
	 */
	void addJob(QuartzJobCfg jobCfg);

	/**
	 * 修改 quartz job
	 *
	 * @param jobCfg
	 */
	void updateJob(QuartzJobCfg jobCfg);

	/**
	 * 删除 quartz job
	 *
	 * @param id
	 */
	void deleteJob(Long id);

	/**
	 * 查询系统中所有状态为 启用 的 job
	 */
	List<QuartzJobCfg> queryAllEnableJobCfgs();

	/**
	 * 获取所有的 quartz 配置
	 *
	 * @return
	 */
	List<QuartzJobCfg> findAll();

	/**
	 * 根据主键获取一个 job 配置
	 *
	 * @param id
	 * @return
	 */
	QuartzJobCfg selectOne(Long id);

	/**
	 * 动态更新job执行的class
	 *
	 * @param bytes
	 * @param id
	 */
	void updateQuartzExecuteClass(byte[] bytes, Long id);
}
